home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
- User documentation for the packet driver collection
- Russell Nelson
- Clarkson University
- Potsdam, NY 13676
- nelson@clutx.clarkson.edu
-
-
- Why?
-
- Every PC Ethernet board is different. The 3c501 was, for
- some time, the most popular board, and would have become the
- defacto standard but for its poor performance. By the time 3Com
- created a board with acceptable performance, so had many others,
- and 3Com lost its lead. FTP Software, in order to support each
- of these boards without losing its collective mind, created the
- Packet Driver Spec (PDS).
-
-
- What?
-
- Some boards use DMA, some use programmed I/O, and some use
- shared memory. The PDS masks the differences between these
- boards by defining a software interface to the boards. This
- software interface is a software interrupt in the range between
- 0x60 (hex) and 0x80.
-
-
- How?
-
- The packet driver must be installed prior to use. Since
- each packet driver takes only approximately 1800 bytes, this is
- best done in your autoexec.bat. Since the Ethernet boards typi-
- cally have jumpers on board, the packet driver must be informed
- of the values of these jumpers (auto-configure is possible, but
- can disturb other boards). The first parameter is the software
- interrupt used to communicate with the packet driver. And again,
- because each board is different, the rest of the parameters will
- be different.
-
- Before installing the packet driver, you must choose a software
- interrupt number in the range between 0x60 and 0x80. Some of
- these interrupts are used for other purposes, so your first
- choice may not work. See Appendix A for the section of Ralf
- Brown's interrupt list between 0x60 and 0x80.
-
- Running a packet driver with no specifications will give a usage
- message. The parameters for each packet driver are documented
- below.
-
-
-
-
-
-
- 3Com 3C501
- usage: 3C501 packet_int_no [int_no [io_addr]]
-
- The 3c501 requires two additional parameters -- the
- hardware interrupt number and the I/O address. The defaults are
- 3 and 0x300.
-
-
- 3Com 3C503
-
- usage: 3C503 packet_int_no [int_level(2-5) [io_addr
- [cable_type]]]
-
- The 3c503 requires three additional parameters -- the
- hardware interrupt number, the I/O address, and the cable type.
- The 3c503 can be attached to thick or thin Ethernet cables, and
- the selection is made in software. The cable type parameter
- should be zero for thin, and one for thick. The defaults are 2,
- 0x300, and 0 (thin). The 3c503 uses shared memory whose address
- is set by jumpers, but the software can ask the board what the
- address is.
-
-
- 3Com 3c505
-
- usage: 3c505 packet_int_no [int_no [io_addr [base_addr]]]
-
- The 3c505 requires three additional parameters -- the
- hardware interrupt number, the I/O address, and the memory base
- address. The defaults are 2 and 0x300 and 0xd000.
-
-
- 3Com 3c523
-
- usage: 3c523 packet_int_no [int_no [io_addr [base_addr]]]
-
- The 3c523 requires three additional parameters -- the
- hardware interrupt number, the I/O address, and the memory base
- address. The defaults are 3 and 0x300 and 0xc000.
-
-
- IBM Token Ring
-
- usage: ibmtoken packet_int_no [adapter_no]
-
- The IBM Token Ring packet driver requires one additional
- parameters -- the adapter number. The default is zero. See
- IBMTOKEN.DOC for more information.
-
-
-
-
-
-
- BICC Data Networks' ISOLAN 4110 ethernet
-
- usage: isolan packet_int_no [int_no [base_addr]]
-
- The BICC Isolan requires three additional parameters -- the
- hardware interrupt number and the memory base address. The
- defaults are 2 and 0xb800h.
-
-
- 3Com ne1000
-
- usage: ne1000 packet_int_no [int_no [io_addr]]
-
- The ne1000 requires two additional parameters -- the
- hardware interrupt number and the I/O address. The defaults are
- 3 and 0x300.
-
-
- Racal-Interlan (Formerly Interlan) NI5010
-
- usage: NI5010 packet_int_no [int_no [io_addr]]
-
- The NI5010 requires two additional parameters -- the
- hardware interrupt number and the I/O address. The defaults are
- 3 and 0x300.
-
-
- Racal-Interlan (Formerly Micom-Interlan) NI5210
-
- usage: ni5210 packet_int_no [int_no [io_addr [base_addr]]]
-
- The NI5210 requires three additional parameters -- the
- hardware interrupt number, the I/O address, and the memory base
- address. The defaults are 2 and 0x360 and 0xd000. Note that
- Interlan sets the default memory base to 0xa000, which is brain-
- damaged, because that area of memory is specifically reserved for
- video adapters, and in fact the EGA and VGA use it.
-
-
- Racal-Interlan (Formerly Micom-Interlan) NI9210
-
- usage: ni9210 packet_int_no [int_no [io_addr [base_addr]]]
-
- The NI9210 requires three additional parameters -- the
- hardware interrupt number, the I/O address, and the memory base
- address. The defaults are 2 and 0x360 and 0xd000.
-
-
- SLIP8250
-
- usage: SLIP8250 packet_int_no [driver_class] [int_no]
- [io_addr] [baud_rate] [send_buf_size] [recv_buf_size]
- The driver_class should be SLIP, KISS, AX.25, or a
- number.
-
-
-
-
-
-
- The SLIP8250 is not strictly an Ethernet adapter, however
- some software packages (such as KA9Q's NET) support Serial Line
- IP (SLIP). SLIP must be specially supported because it doesn't
- use ARP and has no hardware addresses prepended to its packets.
- The PDS is not clear on this, but the packet driver does the SLIP
- encoding.
- The parameters are as follows. The driver_class is the class
- that is returned to a client of the packet driver spec in the
- Drive_Info call. The int_no is the hardware interrupt number,
- defaults to 3 (COM1). The io_addr is the hardware I/O address,
- defaults to 0x3f8 (COM1). The baud_rate defaults to 4800 baud.
- The send_buf_size and recv_buf_size default to 3000 each.
-
-
- Western Digital WD8003E,WD8003ET/A
-
- usage: WD8003E packet_int_no [int_level [io_addr
- [mem_base]]]
-
- The WD8003E driver is also for the WD8003ET/A, a
- MicroChannel Ethernet adapter. The WD8003E requires three addi-
- tional parameters -- the hardware interrupt number, the I/O
- address, and the memory base address. The defaults are 2 and
- 0x280 and 0xc400.
-
-
- What else?
-
- There are also several utility programs for packet drivers:
-
-
- PKTADDR
-
- usage: pktaddr packet_int_no [ethernet_addr]
-
- If the second argument is given, the Ethernet address of
- the given packet driver is set. The Ethernet address is printed
- out.
-
-
- PKTALL
-
- usage: pktall packet_int_no
-
- All packets are received and discarded from the given
- packet driver. This program is of most use with PKTMODE and
- TRACE.
-
-
-
-
-
-
- PKTCHK
-
- usage: pktchk packet_int_no [packet_int_no]
-
- Test for existance of a packet driver. Returns with
- errorlevel 0 if the specified interrupt has a packet driver. If
- the second argument is given, all interrupts in the range are
- checked for a packet driver. If no packet driver is found at
- all, errorlevel 1 is returned.
-
-
- PKTMODE
-
- usage: pktmode packet_int_no [receive_mode]
-
- If the second argument is given, the receive mode of the
- given packet driver is set. A decimal number from the list of
- modes should be used. All the possible modes are printed out.
- Unimplemented modes are marked with "xx", and the current mode is
- marked with "->".
-
-
- TERMIN
-
- usage: termin packet_int_no
-
- The specified packet driver is terminated, and its memory
- recovered.
-
- STAT
-
- usage: stat
-
- The statistics for all packet drivers are printed. The
- meanings of the columns are given below.
-
-
- pktin is the number of packets ever received by this driver.
- pktout is the number of packets ever transmitted by this
- driver.
- bytin is the number of bytes ever received by this driver.
- bytout is the number of bytes ever transmitted by this driver.
- pkdrop Packets dropped because there was no handler for that
- Ethernet packet type.
- errin Dependent upon the packet driver.
- errout Dependent upon the packet driver.
-
-
-
- TRACE
-
- usage: trace packet_int_no [buffer_size]
-
- Trace is very useful for debugging packet driver troubles.
- Trace lets you trace all transactions between a user program and
-
-
-
-
-
-
- the packet driver. The transactions are stored in a memory
- buffer whose size is set with buffer_size. The default size is
- 10,000 bytes.
-
- When you run trace, it sets itself up and then spawns
- COMMAND.COM so that you can run a network program that uses the
- packet driver. After you quit your network session, you issue an
- "EXIT" command. This returns you to trace, which writes the
- transaction log to "TRACE.OUT". The following program, DUMP,
- interprets TRACE.OUT.
-
-
- DUMP
-
- usage: dump
-
- Interprets the contents of TRACE.OUT as written by TRACE.
-
-
- Who?
-
- See the file support.txt for a listing of all the people who
- contributed packet drivers.
-
-
-
-
-
-
- Appendix A
- Interrupt usage in the range 0x60 through 0x80
-
-
-
- 60 -- -- reserved for user interrupt
- 60 -- -- FTP Driver - PC/TCP Packet Driver Specification
- 60 01 FF FTP Driver - DRIVER INFO
- 60 02 -- FTP Driver - ACCESS TYPE
- 60 03 -- FTP Driver - RELEASE TYPE
- 60 04 -- FTP Driver - SEND PACKET
- 60 05 -- FTP Driver - TERMINATE DRIVER FOR HANDLE
- 60 06 -- FTP Driver - GET ADDRESS
- 60 07 -- FTP Driver - RESET INTERFACE
- 60 11 -- 10-NET - LOCK AND WAIT
- 60 12 -- 10-NET - LOCK
- 60 13 -- 10-NET - UNLOCK
- 60 20 -- FTP Driver - SET RECEIVE MODE
- 60 21 -- FTP Driver - GET RECEIVE MODE
- 60 24 -- FTP Driver - GET STATISTICS
- 61 -- -- reserved for user interrupt
- 62 -- -- reserved for user interrupt
- 63 -- -- reserved for user interrupt
- 64 -- -- reserved for user interrupt
- 65 -- -- reserved for user interrupt
- 66 -- -- reserved for user interrupt
- 67 -- -- LIM EMS
- ...
- 67 DE 00 Virtual Control Program Interface - INSTALLATION CHECK
- ...
- 68 01 -- APPC/PC
- ...
- 69 -- -- unused
- 6A -- -- unused
- 6B -- -- unused
- 6C -- -- system resume vector (CONVERTIBLE)
- 6C -- -- DOS 3.2 Realtime Clock update
- 6D -- -- VGA - internal
- 6E -- -- unused
- 6F -- -- Novell NetWare - PCOX API (3270 PC terminal interface)
- 6F 00 -- 10-NET - LOGIN
- ...
- 70 -- -- IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
- 71 -- -- IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
- 72 -- -- IRQ10 - AT/XT286/PS50+ - RESERVED
- 73 -- -- IRQ11 - AT/XT286/PS50+ - RESERVED
- 74 -- -- IRQ12 - PS50+ - MOUSE INTERRUPT
- 75 -- -- IRQ13 - AT/XT286/PS50+ - 80287 ERROR
- 76 -- -- IRQ14 - AT/XT286/PS50+ - FIXED DISK
- 77 -- -- IRQ15 - AT/XT286/PS50+ - RESERVED
- 78 -- -- not used
- 79 -- -- not used
- 7A -- -- Novell NetWare - LOW-LEVEL API
- 7A -- -- AutoCAD Device Interface
- 7B -- -- not used
-
-
-
-
-
-
- 7C -- -- not used
- 7D -- -- not used
- 7E -- -- not used
- 7F -- -- HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
- 7F -- -- HLLAPI (High-Level Language API)
- 80 -- -- reserved for BASIC
-